import axios from 'axios'
import store from '@/store'
// import { Message } from 'element-ui'
// import router from '@/router'
// create an axios instance
const request = axios.create({
  baseURL: process.env.VUE_APP_BASE_API // url = base url + request url
  // withCredentials: true, // send cookies when cross-domain requests
  // timeout: 5000 // request timeout
})

// 添加请求拦截器
request.interceptors.request.use(
  function (config) {
    // 在发送请求之前做些什么
    if (store.getters.token) {
      config.headers.Authorization = `Bearer ${store.getters.token}`
    }
    return config
  },
  function (error) {
    // 对请求错误做些什么
    return Promise.reject(error)
  }
)

// 添加响应拦截器
request.interceptors.response.use(
  function (response) {
    // 对响应数据做点什么
    // console.log(response)
    return response
  },
  function (error) {
    console.log(error)
    // // 对响应错误做点什么
    // // 断网、服务器宕机、token超时....
    // // 这个函数是处理一些400、404、504等等4、5开头的状态码的情况的
    // // 对响应错误做点什么
    // console.log(error.response)
    // // 下面这个判断条件就是token过期的情况，切记。
    // if (error.response.status === 401 && error.response.data.code === 40001) {
    //   // 清除一下token和用户的个人信息，并且跳转到登录页，还要给用户一个提示
    //   Message.error('登录过期了！请重新登陆')
    //   store.dispatch('user/logout')
    //   router.push('/login')
    // } else {
    //   // 上面token过期已经有了一个提示了，那下面这个提示就没必要再次提示了，就加了个else
    //   // 这个提示正好为不是token过期的情况提供提示
    //   Message.error(error)
    // }
    return Promise.reject(error)
  }
)

export default request
